#pragma once
#include "PlayerItem.h"

namespace catan
{
	struct DevelopmentCardType
	{
		enum Enum
		{
			VictoryPoint = 0,
			Soldier,
			Monopoly,
			YearOfPlenty,
			RoadBuilding,
			Num,
		};
	};

	class DevelopmentCard : public PlayerItem
	{
	public:
		DevelopmentCard(){}
		DevelopmentCard(DevelopmentCardType::Enum type);
		~DevelopmentCard(void);
		static FieldResourceTypes GetBuyCards()
		{
			FieldResourceTypes p;
			p.push_back(FieldResourceType::Iron);
			p.push_back(FieldResourceType::Grain);
			p.push_back(FieldResourceType::Sheep);
			return p;
		}
		Handle<Player> GetPlayer() const { return mPlayer; }
		void SetPlayer(Handle<Player> val) { mPlayer = val; }
	private:
		Handle<Player> mPlayer;
		
		DevelopmentCardType::Enum mDevelopmentCardType;
		bool mUse;

	public:
		template<class Serializer>
		void serialize(Serializer & s, const unsigned int version)
		{
			s & mPlayer & mDevelopmentCardType & mUse;
		}
	};
}	